var Cheques =
{
	modeloLocal: new Rin.Model ({
		lista: [ ], lista_vacia: 1,

		total: 0, pagina: 1, paginas: 0, count: 20, _count: 20,

		tipoCheque: "", numeroCheque: "", entregado: "", vendedor: "", beneficiario: ""
	}),

	pagAnterior: function ()
	{
		var m = this.modeloLocal;

		if (m.get("pagina") <= 1) return;
		m.set("pagina", m.get("pagina") - 1);

		this.filtrarLista();
	},

	pagSiguiente: function ()
	{
		var m = this.modeloLocal;

		if (m.get("pagina") >= m.get("paginas")) return;
		m.set("pagina", m.getInt("pagina") + 1);

		this.filtrarLista();
	},

	exportar: function (full)
	{
		var m = this.modeloLocal.get();

		var data = { op: "exportar", offset: (m.pagina-1)*m.count, count: m.count, tipo_cheque: m.tipoCheque, numero_cheque: m.numeroCheque, entregado: m.entregado, vendedor: m.vendedor, beneficiario: m.beneficiario, full: full ? 1 : 0 };
		var url = "code/api/c_cheques.php?" + $.param(data);

		window.open (url);
	},

	filtrarLista: function ()
	{
		var m = this.modeloLocal.get();

		Ajax.request ("code/api/c_cheques.php", { op: "listar", offset: (m.pagina-1)*m.count, count: m.count, tipo_cheque: m.tipoCheque, numero_cheque: m.numeroCheque, entregado: m.entregado, vendedor: m.vendedor, beneficiario: m.beneficiario }, function (r)
		{
			Cheques.modeloLocal.set ("lista_vacia", r.datos.length == 0 ? 1 : 0);
			Cheques.modeloLocal.set ("lista", r.datos);
		});
	},

	cargarLista: function ()
	{
		var m = this.modeloLocal.get();

		if (m.count != m._count)
			m.pagina = 1;

		Ajax.request ("code/api/c_cheques.php", { op: "contar", tipo_cheque: m.tipoCheque, numero_cheque: m.numeroCheque, entregado: m.entregado, vendedor: m.vendedor, beneficiario: m.beneficiario }, function (r)
		{
			if (r.total == m.total && m.count == m._count) return;

			m._count = m.count;

			Cheques.modeloLocal.set ({
				paginas: Math.floor ((parseInt(r.total) + parseInt(m.count) - 1) / m.count),
				total: r.total,
				pagina: 1
			});
		});

		this.filtrarLista();
	},

	cargarTipos: function ()
	{
		Ajax.request ("code/api/c_cheques.php", { op: "tipos" }, function (r)
		{
			Cheques.modeloLocal.set ({ tipos: r.datos });
		});
	},

	marcarCheque: function (numero_cheque, valor)
	{
		Ajax.request ("code/api/c_cheques.php", { op: "marcar", numero_cheque: numero_cheque, valor: valor }, function (r)
		{
			Cheques.filtrarLista();
		});

		return false;
	}
};

Cheques.cargarLista();
Cheques.cargarTipos();
